CC = mipsel-openwrt-linux-gcc-4.8.3		# 指定使用的交叉编译工具

TARGET = eeprom		# 生成的可执行文件名

# 支持C99标准 这里不要使用-std=c99，否则会报警告提示部分库函数未包含对应头文件
# pthread不是linux下的默认的库，如果这里不加-lpthread，则在链接的时候无法找到phread库中各函数的入口地址，链接会失败
CFLAGS = -std=gnu99 -lpthread

# 获取各工程文件所在的相对目录
TOP_PATH    = .

# 获取工程中各文件夹下的源文件(.c)、目标文件(.o)的文件列表
TOP_SRC = $(wildcard $(TOP_PATH)/*.c)           # 获取当前目录下的所有的.c文件列表
TOP_OBJ = $(patsubst %.c, %.o, $(TOP_SRC))      # 将列表中所有文件名的后缀.c替换为.o。这样就可以得到在当前目录可生成的.o文件列表。 patsubst ：替换通配符

# 所有目标文件的集合
UART_OBJS = $(TOP_OBJ)

# Makefile的默认目标
$(TARGET):$(UART_OBJS)
	$(CC) $(CFLAGS) -o $(TARGET) $^
	@echo "Compile done, Target file: $(TARGET)"


# 编译TOP_PATH下的.c文件 为.o文件
TOP_OBJ:$(TOP_SRC)
	$(CC) $(CFLAGS) $(TOP_SRC) -c -o $^

# 清理目标设置为伪目标，防止外面有clean文件 阻止执行clean
.PHONY:clean
clean:
	-$(RM) $(UART_OBJS)
	@echo "Clean object file done!"

# 清理目标设置为伪目标
.PHONY:distclean
distclean:
	-$(RM) $(TARGET) $(UART_OBJS)
	@echo "Clean target and object file done!"


